﻿using System;
using System.Collections.Generic;
using System.Text;
using Tauren.Business.Entity.Config;
using Tauren.Business.Entity.Global;
using Tauren.Business.Entity.Output;
using Input = Tauren.Business.Entity.Input;

namespace Tauren.Business.Service.Menus
{
    /// <summary>
    /// 菜单信息
    /// </summary>
    public interface IMenuService
    {
        /// <summary>
        /// 树形菜单
        /// </summary>
        /// <returns></returns>
        IResponseMessage Menus();
        /// <summary>
        /// 表格菜单
        /// </summary>
        /// <returns></returns>
        IResponseMessage Tables();
        /// <summary>
        /// 删除账户信息
        /// </summary>
        /// </summary>
        /// <param name="id">菜单ID</param>
        /// <returns></returns>
        IResponseMessage Delete(object id);


        /// <summary>
        /// 获取单个数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        IResponseMessage FirstOrDefault(object id);

        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        IResponseMessage Add(Input.Menus_InPut input);
        /// <summary>
        /// 编辑数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        IResponseMessage Editor(Input.Menus_InPut input);


        /// <summary>
        /// 启用/禁用
        /// </summary>
        /// <param name="id"></param>
        /// <param name="enable"></param>
        /// <returns></returns>
        IResponseMessage Enable(int id);

        /// <summary>
        /// 获取树形结构的菜单
        /// </summary>
        /// <returns></returns>
        IResponseMessage Tree();

        /// <summary>
        /// 角色
        /// </summary>
        /// <param name="MenuId"></param>
        /// <returns></returns>
        IResponseMessage Roles(long MenuId);
        /// <summary>
        /// 添加角色
        /// </summary>
        /// <param name="_Roles"></param>
        /// <returns></returns>
        IResponseMessage AddRoles(List<ExtMenus_Roles> _Roles,long menuId);
        
        /// <summary>
        /// 菜单列表数据
        /// </summary>
        /// <returns></returns>
        IResponseMessage Pages(QueryModel queryModel);
    }
}
